home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / conlib.lha / ConLib / Modula_Stuff / ConLibD.def next >
Text File  |  1992-01-04  |  8KB  |  250 lines

  1. (* TAB = 3
  2.  
  3. *******************************************************************************
  4. *****
  5. ***** Name      : ConLibD.def                   INTERFACE MODULE
  6. *****
  7. ***** Made by   : Bjorn Reese (C) 1991
  8. *****
  9. ***** Interface : Jesper B. Krogholt
  10. *****
  11. ***** Version   : 2.0
  12. *****
  13. ***** Compiler  : M2Make 4.0d
  14. *****
  15. ***** Purpose   : Making IO a lot easier
  16. *****
  17. *******************************************************************************
  18. *****
  19. ***** History   : 19 JUN 91   Contruct of the interface
  20. *****             27 AUG 91   Update to new version (still pre-version)
  21. *****              5 NOV 91   2.0 update (-- BReese --)
  22. *****
  23. *******************************************************************************
  24.  
  25. *)
  26.  
  27. DEFINITION MODULE ConLibD;
  28. (*$ Implementation:=FALSE *)
  29.  
  30. FROM SYSTEM            IMPORT ADDRESS, BYTE;
  31. FROM ExecD            IMPORT MsgPortPtr, Library;
  32. FROM IntuitionD    IMPORT WindowPtr, IDCMPFlagSet, IntuiMessagePtr;
  33. FROM ConUnit        IMPORT ConUnit, ConUnitPtr;
  34. FROM InputEvent    IMPORT QualifierSet;
  35.  
  36. CONST
  37.  
  38.     CHARDEFSIZE    = 32;
  39.     IGNOREVALUE    = FFFFH;
  40.  
  41. TYPE
  42.     BitTableType        = ARRAY [1..CHARDEFSIZE] OF CHAR;
  43.  
  44.     BitTablePtrType    = POINTER TO BitTableType;
  45.  
  46.     ConHandleType        = POINTER TO cnh;        (* Conhandle *)
  47.     AcceptType            = POINTER TO acc;        (* Accept structure *)
  48.     AcceptStringType    = POINTER TO accs;    (* Accept string structure *)
  49.     ConInfoType            = POINTER TO cin;        (* ConInfo structure *)
  50.  
  51. (* ---------------------  ConBase  ----------------- *)
  52.  
  53.     con = RECORD
  54.                 LibNode    : Library;                (* Library Node Record *)
  55.                 SegList    : ADDRESS;                (* Segment List [From LoadSeg()] *)
  56.                 IntBase    : ADDRESS;                (* IntuitionBase *)
  57.                 MathBase    : ADDRESS;                (* MathFFP Base *)
  58.             END;
  59.  
  60. (* ---------------------  ConHandle  ----------------- *)
  61.  
  62.     cnh =    RECORD
  63.                 CDBase            : ADDRESS;        (* Base of Console Device *)
  64.                 Window            : WindowPtr;    (* Our Intuition Window *)
  65.                 UserPort            : MsgPortPtr;    (* UserPort for Window *)
  66.                 Unit                : ConUnitPtr;    (* ConUnit *)
  67.                 WriteIO            : ADDRESS;        (* Our Write IO Port *)
  68.                 Signal            : LONGCARD;        (* SignalSet [for Wait()] *)
  69.                 ExLength            : CARDINAL;        (* Extra space for string format *)
  70.                 CursorStatus    : CARDINAL;        (* Current Cursor Status [on|off] *)
  71.                 PadSpace            : CHAR;            (* Char for Leading Spaces *)
  72.                 PadZero            : CHAR;            (* Char for Leading Zeros *)
  73.                 PadGroup            : CHAR;            (* Char for Group Classifying *)
  74.                 PadString        : CHAR;            (* Char for Unused String pos. *)
  75.                 DecimalPoint     : CHAR;            (* Char for Decimal Point *)
  76.                 FloatE            : CHAR;            (* Char for Floaint Point Expo. *)
  77.                 EchoTable        : BitTableType;(* Echo chars *)
  78.                 UserNotes        : ARRAY [0..7] OF ADDRESS; (* User note defin. *)
  79.                 MsgHandler        : ADDRESS;        (* Pointer to User Message Handler *)
  80.                 Reserved            : ARRAY [0..3] OF LONGCARD; (* FUTURE USE *)
  81.             END;
  82.  
  83. (* ---------------------  ConInfo  ----------------- *)
  84.  
  85.     cin =    RECORD
  86.                 XPos        : CARDINAL;                (* Cursor X Position *)
  87.                 YPos        : CARDINAL;                (* Cursor Y Position *)
  88.                 XSize        : CARDINAL;                (* Chars per Line *)
  89.                 YSize        : CARDINAL;                (* Lines in Window *)
  90.                 Styles    : CARDINAL;                (* Text styles *)
  91.                 FgCol        : CARDINAL;                (* Foreground color *)
  92.                 BgCol        : CARDINAL;                (* Background color *)
  93.                 Reserved    : ARRAY [0..3] OF LONGCARD; (* FUTURE USE *)
  94.             END;
  95.  
  96. (* ---------------------  AcceptStructure  ----------------- *)
  97.  
  98.     acc =    RECORD
  99.                 XStart        : CARDINAL;            (* Start X position *)
  100.                 YStart        : CARDINAL;            (* Start Y position *)
  101.                 Styles        : CARDINAL;            (* Text style *)
  102.                 FgCol            : CARDINAL;            (* Foreground color *)
  103.                 BgCol            : CARDINAL;            (* Background color *)
  104.                 ExitFlags    : IDCMPFlagSet;    (* IDCMP Exit Flags *)
  105.                 Class            : IDCMPFlagSet;    (* Copy of im_Class *)
  106.                 Code            : CARDINAL;            (* Copy of im_Code *)
  107.                 Qualifier    : QualifierSet;    (* Copy of im_Qualifier *)
  108.                 IAddress        : ADDRESS;            (* Copy of im_IAdress *)
  109.                 MouseX        : INTEGER;            (* Copy of im_MouseX *)
  110.                 MouseY        : INTEGER;            (* Copy of im_MouseY *)
  111.                 Seconds        : LONGCARD;            (* Copy of im_Seconds *)
  112.                 Micros        : LONGCARD;            (* Copy of im_Micros *)
  113.                 IDCMPWindow    : WindowPtr;        (* Copy of im_IDCMPWindow *)
  114.                 Char            : CHAR;                 (* ASCII char *)
  115.                 Pad001        : BYTE;                 (* Nothing serious *)
  116.                 ValidTable    : BitTableType;    (* BitTable of Valid Chars *)
  117.                 ExitTable    : BitTableType;    (* BitTable of Exit Chars *)
  118.                 Reserved        : ARRAY [0..3] OF LONGCARD; (* FUTURE USE *)
  119.             END;
  120.  
  121. (* ---------------Extended  AcceptStructure  ----------------- *)
  122.  
  123.     accs = RECORD
  124.  
  125.                 (* EQUAL TO ACC RECORD *)
  126.  
  127.                 XStart        : CARDINAL;            (* Start X position *)
  128.                 YStart        : CARDINAL;            (* Start Y position *)
  129.                 Styles        : CARDINAL;            (* Text style *)
  130.                 FgCol            : CARDINAL;            (* Foreground color *)
  131.                 BgCol            : CARDINAL;            (* Background color *)
  132.                 ExitFlags    : IDCMPFlagSet;    (* IDCMP Exit Flags *)
  133.                 Class            : IDCMPFlagSet;    (* Copy of im_Class *)
  134.                 Code            : CARDINAL;            (* Copy of im_Code *)
  135.                 Qualifier    : QualifierSet;    (* Copy of im_Qualifier *)
  136.                 IAddress        : ADDRESS;            (* Copy of im_IAdress *)
  137.                 MouseX        : INTEGER;            (* Copy of im_MouseX *)
  138.                 MouseY        : INTEGER;            (* Copy of im_MouseY *)
  139.                 Seconds        : LONGCARD;            (* Copy of im_Seconds *)
  140.                 Micros        : LONGCARD;            (* Copy of im_Micros *)
  141.                 IDCMPWindow    : WindowPtr;        (* Copy of im_IDCMPWindow *)
  142.                 Char            : CHAR;                 (* ASCII char *)
  143.                 Pad001        : BYTE;                 (* Nothing serious *)
  144.                 ValidTable    : BitTableType;    (* BitTable of Valid Chars *)
  145.                 ExitTable    : BitTableType;    (* BitTable of Exit Chars *)
  146.                 Reserved        : ARRAY [0..3] OF LONGCARD; (* FUTURE USE *)
  147.  
  148.                 (* EXTENDED ACCEPT STRING RECORD *)
  149.  
  150.                 InputBuffer    : ADDRESS;            (* Pointer to Input Buffer *)
  151.                 WorkBuffer    : ADDRESS;            (* Pointer to Work Buffer *)
  152.                 MaxLength    : CARDINAL;            (* Maximum Length of Text [incl. NULL] *)
  153.                 FieldLen        : CARDINAL;            (* Length of Input Field  [incl. NULL] *)
  154.                 Length        : CARDINAL;            (* Current Length of Text [excl. NULL] *)
  155.                 Position        : CARDINAL;            (* Current Position in Text *)
  156.                 DispPos        : CARDINAL;            (* First displayed pos. in Text *)
  157.                 Reserved2    : ARRAY [0..1] OF LONGCARD; (* FUTURE USE *)
  158.              END;
  159.  
  160.  
  161. TYPE
  162.  
  163. (* --------------- Accept Flags  ----------------- *)
  164.  
  165.     AcceptFlags     = (b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,
  166.                             NOSCROLL,NOSTDAMIGA,NOAMIGA,FULLSTOP,LASTEXIT,OVERWRITE,
  167.                             CONTINUE,JUSTIFIED,b23,WAIT,ECHO,UPKEY,DUALKEY,RAWKEY,
  168.                             b29,b30,ERASE);
  169.  
  170.     AcceptFlagSet     = SET OF AcceptFlags;
  171.  
  172. (* --------------- Codes for Convert()  ----------------- *)
  173.  
  174.     ConvertCodes     = (DECIMAL,HEX,OCTAL,BINARY);
  175.  
  176.     ConvertCodeSet = SET OF ConvertCodes;
  177.  
  178. CONST
  179.  
  180. (* --------------- DefineChar() Values  ----------------- *)
  181.  
  182.     DEFMODEALL    = 0000H;
  183.     DEFMODENEW    = 0001H;
  184.     DEFMODEADD    = 0002H;
  185.     DEFMODEREM    = 0003H;
  186.     DEFMODEGET    = 0004H;
  187.  
  188.     DEFALL        = 00000000H;
  189.     DEFNONE        = 00020000H;
  190.     DEFALFANUM    = 00040000H;
  191.     DEFALFA        = 00060000H;
  192.     DEFNUMERIC    = 00080000H;
  193.     DEFDECIMAL    = 000A0000H;
  194.     DEFHEX        = 000C0000H;
  195.     DEFOCTAL        = 000E0000H;
  196.     DEFBINARY    = 00100000H;
  197.     DEFFLOAT        = 00120000H;
  198.  
  199.  
  200. (* --------------- Cursor Types  ----------------- *)
  201.  
  202.     CURSOROFF    = 0;
  203.     CURSORON        = 1;
  204.  
  205. (* --------------- SetGfx Styles  ---------------- *)
  206.  
  207.     SGFPLAIN            = 0001H;
  208.     SGFBOLD            = 0002H;
  209.     SGFITALIC        = 0004H;
  210.     SGFUNDERLINED    = 0008H;
  211.  
  212. (* --------------- Convert Modes  ----------------- *)
  213.  
  214.     CNVDECIMAL    = 1;
  215.     CNVHEX        = 2;
  216.     CNVOCTAL        = 3;
  217.     CNVBINARY    = 4;
  218.  
  219.     CNVSIGNED        = 00010000H;
  220.     CNVLEADSPACE    = 00020000H;
  221.  
  222.  
  223. (* --------------- Codes for Special Keys  ----------------- *)
  224.  
  225.     AKEYNONE        = 0;
  226.     AKEYHELP        = 5;
  227.     AKEYBS        = 8;
  228.     AKEYTAB        = 9;
  229.     AKEYLF        = 10;
  230.     AKEYRETURN    = 13;
  231.     AKEYARROWRG    = 17;
  232.     AKEYARROWLF    = 18;
  233.     AKEYARROWUP    = 19;
  234.     AKEYARROWDN    = 20;
  235.     AKEYESC        = 27;
  236.     AKEYDEL        = 127;
  237.     AKEYF1        = 129;
  238.     AKEYF2        = 130;
  239.     AKEYF3        = 131;
  240.     AKEYF4        = 132;
  241.     AKEYF5        = 133;
  242.     AKEYF6        = 134;
  243.     AKEYF7        = 135;
  244.     AKEYF8        = 136;
  245.     AKEYF9        = 137;
  246.     AKEYF10        = 138;
  247.     AKEYCSI        = 155;
  248.  
  249. END ConLibD.
  250.